package com.example.yeb.yebserver.exception;

import lombok.ToString;

@ToString
public enum EnumResultMsg implements StatusResult {

    SUCCESS("200", "成功"),
    FAILURE("600", "Service Exception"),
    HTTP_STATUS_CODE_500("500", "Internal Server Error"),
    DUPLICATEKEY_ERROR("1002", "数据库异常，数据重复"),
    DB_ERROR("1001", "数据库错误"),
    SYSTEM_ERROR("1003", "系统错误"),
    HTTP_METHOD_NOT_ALLOWED("1004", "不支持的请求方法"),
    HTTP_ACCEPTABLE("1005", "不支持的请求类型"),
    FAIL_PARAM("1006", "参数错误"),
    TENANT_ERROR("1007", "调用接口异常,请查看log"),
    JWTERRO("3007","令牌无效"),

    // 业务异常
    CODE_ERROR("1008", "用户编码重复"),
    TEL_ERROR("1009", "手机号重复"),
    PASSWORD_ERROR("1010", "旧密码不正确"),
    AREA_ERROR("1011", "所属区域不能为空"),
    STORE_ERROR("1012", "所属门店不能为空"),
    TEL_EMPTY_ERROR("1013", "重置密码失败！请先填写管理员信息"),
    DATA_NODE_ERROR("1014", "数据库连接编码已被使用,请重新打开新增画面获取"),

    //第三方接口异常
    CLIENT_PORTAL_ROLELIST("3001", "获取角色列表失败!"),
    CLIENT_PORTAL_USERROLES("3002", "获取用户角色失败!"),
    CLIENT_PORTAL_SAVEROLES("3003", "保存用户角色失败!"),
    CLIENT_PORTAL_SAVEUSER("3004", "同步用户信息失败!"),
    CLIENT_STORE_AREA("3005", "获取区域信息失败!"),
    CLIENT_STORE_STORELIST("3006", "获取门店信息失败!"),
    CLIENT_PROTAL_PRODUCT("3007", "获取门店信息失败!"),
    CLIENT_PROTAL_PRODUCT_MENU("3008", "获取产品菜单失败!"),


    ROLE_CODE_ERROR("6001", "角色编码不能重复"),
    ROLE_INFO_ERROR("6002", "角色信息不存在"),
    APPLICATION_CODE_ERROR("6003", "应用编码不能重复"),
    APPLICATION_NO_EXIST_ERROR("6004", "应用不存在"),
    MENU_EXIST_CODE_ERROR("6005", "菜单编码重复"),
    MENU_NO_EXIST_ERROR("6006", "菜单编码重复"),
    MENU_GROUP_EXIST_ERROR("6007", "分组编码重复"),
    PRODUCT_VERSION_ERROR("6008", "该应用版本已存在"),
    MENU_GROUP_MENU_ERROR("6009", "菜单分组请勾选菜单元素"),
    FILE_UPLOAD_ERROR("300018", "上传的文件为空"),
    USER_NOT_ERROR("300019", "用户信息不存在"),
    MERCHANT_USER_NOT_ERROR("300020", "商户下线"),
    LOGIN_TIMEOUT_ERROR("300021", "登录超时,请重新登录"),

    /**
     * 调用第三方服务发生异常，请联系系统维护人员处理
     */
    THIRD_SERVICE_EXCEPTION("30006", "调用第三方服务发生异常，请联系系统维护人员处理"),

    ;


    private final String code;
    private final String msg;

    private EnumResultMsg(String code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    public String getCode() {
        return this.code;
    }

    public String getMsg() {
        return this.msg;
    }

}
